When broadcasting video/audio contents over the Internet using Peer to Peer (P2P) streaming, the bandwidth resources of leaf nodes, or nodes away from the source node (root node), are typically under-utilized. This leads to sub-optimal throughput performance of the entire streaming system.
There are two types of P2P streaming systems in existence today. The first type uses end host multicast (ESM, ChunkySpread). With ESM, all participating nodes form one or more spanning tree(s) that are rooted at the source. Because of the explicit tree structure, it responds poorly against the group dynamics (nodes joining and leaving the structure), and does a poor job of using the leaf node's bandwidth resources.
The second type of P2P streaming system uses mesh forwarding (CoolStreaming/DoNet, PPLive) where chunks of the content are exchanged among neighboring nodes without a pre-defined tree structure. It is more robust against group dynamics compared with the first type. Again, a drawback with this system is the sub-optimal throughput. Due to a lack of coordination among neighboring nodes, bandwidth resources are under-utilized in both of the above systems. Our experiments show current P2P streaming systems achieve throughput at about 50% of resource capacity. This prevents bandwidth-demanding content, such as high quality video, from being broadcasted using P2P streaming system. Currently, these applications are made possible by dedicated infrastructure support such as Content Distribution Network (CDN). The drawback of CDN systems, however, is the high cost of implementation since it requires a very specialized infrastructure.
In recent years, several peer-to-peer (P2P) streaming application, such as PPLive, Coolstreaming, and ESM, have gained popularity in broadcasting TV programs, live concerts/shows, lectures and seminars over the Internet. The capability to potentially scale up to a large audience with acceptable streaming quality enables P2P streaming applications to reach millions of end-users throughout the world.
The typical procedure (pull-based method) of forwarding at each node of a P2P streaming system is as follows:
A node checks its local buffer to see which chunks (portions of a file) are already downloaded and which are missing. It exchanges this availability information with its neighbors.
Given the availability information of its neighbors, the node identifies all chunks that are missing in its local buffer but are available in its neighborhood. These chunks are put into a working set.
The download decisions are made starting from rarest chunks, i.e. the chunks that are available at the fewest neighbors.
For chunks available from multiple neighbors, it selects the chunk with the best residual bandwidth.
It is important to note that the above method is a receiver driven pull-based method, where any chunk transfer is initiated by a request from the receiver and a sender only passively responds to those requests. A simple example shows that it yields sub-optimal throughput performance (as shown in FIG. 1). In FIG. 1A, a 3-node topology is shown, providing the bandwidth resource at each node. In FIG. 1B, the optimal bandwidth allocation is shown to be able to yield a source bandwidth rate of 10. In particular, the source allocates all bandwidth to node B. However, in the pull-based method, the source is passively pulled by all its neighbors. This leads to an even distribution of its bandwidth between A and B. As shown in FIG. 1C, source rate of only 5 is achievable by all the nodes.
We note that this example is for illustrative purposes only; a topology for practical use is far more complicated. Extensive simulations in various topologies show that the pull-based method achieves about 40% to 75% of optimal throughput. In order to achieve optimal throughput, from a global perspective, we need to maximize the minimum of the max-flow from source to each node. One problem is that the optimal solution requires global knowledge at each node, i.e. the overlay connectivity and bandwidth capacity of all the other participating nodes, which makes it impractical to be implemented.
There is a need for a method to overcome the above-stated shortcomings of the known art.